import 'package:flutter/material.dart';

class Progressdemo {
  static ListView getListView() {
    return ListView(
      children: [
        getWidget(),
        SizedBox(
          height: 10,
        ),
        getWidget2(),
        SizedBox(
          height: 10,
        ),
        getWidget3(),
        SizedBox(
          height: 10,
        ),
        getWidget4(),
      ],
    );
  }

  static Widget getWidget() {
    return LinearProgressIndicator(
      //而第二个进度条是静止的，停在50%的位置
      value: 0.3,
      backgroundColor: Colors.red,
      valueColor: AlwaysStoppedAnimation(Colors.blue),
    );
  }

  static Widget getWidget2() {
    //第一个进度条在执行循环动画：蓝色条一直在移动
    return LinearProgressIndicator(
      backgroundColor: Colors.red,
      valueColor: AlwaysStoppedAnimation(Colors.blue),
    );
  }

  static Widget getWidget3() {
    return // 模糊进度条(会执行一个旋转动画)
        CircularProgressIndicator(
      backgroundColor: Colors.grey[200],
      valueColor: AlwaysStoppedAnimation(Colors.blue),
    );
  }

  static Widget getWidget4() {
    return SizedBox(
      width: 100,
      height: 100,
      child: //进度条显示50%，会显示一个半圆
          CircularProgressIndicator(
        backgroundColor: Colors.grey[200],
        valueColor: AlwaysStoppedAnimation(Colors.blue),
        value: .5,
      ),
    );
  }
}

/*
value：value表示当前的进度，取值范围为[0,1]；如果value为null时则指示器会执行一个循环动画（模糊进度）；当value不为null时，指示器为一个具体进度的进度条。
backgroundColor：指示器的背景色。
valueColor: 指示器的进度条颜色；值得注意的是，该值类型是Animation<Color>，这允许我们对进度条的颜色也可以指定动画。如果我们不需要对进度条颜色执行动画，换言之，我们想对进度条应用一种固定的颜色，此时我们可以通过AlwaysStoppedAnimation来指定。
 */
